A personal server is a server you personally control in your own home that only you can access. A personal server can be used as personal storage, a website server, or a VPN.
When you think of a web server you think of one that is loud, big, and makes a lot of noise. But reality, servers can be small, quiet and can fit the size of a laptop.
Personal servers can be used for your own use or other people you give them the link to. It's essentially a cloud server. Only difference is that unlike the cloud, your data won't go poof.
Personal servers can be done via windows or linux. But I'll use linux as the basics
Creating a linux personal server can be done with a laptop, and with a 250GB hard disk drive. Once installed you need to install WinSCP and MobaXterm, those two will allow to give you direct access to the servers as a user.
Once the system is installed you have several options, you can use it as a streaming server, automated archival server for things you want to download from whole pages to videos and images, a personal VPN, or a personal git server.
1. Install any type of linux OS, like Lubuntu. Why Lubuntu. It has LXDE. It's an extremely light GUI which is the absolute minimum you need for a desktop environment if you're going to use the computer as a server. Basically the lighter, the better. The point is that we want this server to be accessed remotely so that you won't have to touch the server physically again, unless you want to. This will be done via SSH
2. The second step is setting up SSH. After setting up SSH, there will be no need to physically touch the computer. It is also recommended that you do not set up wi-fi as a primary connection, and set up the server as a wired Ethernet connection. It's very important that we install ssh. This will be done by the following command.
sudo apt-get install ssh
3. The next step is to determine the user name to be used, and find out the ip address. As there are two parts of the SSH address: The username and the IPaddress (as in username@ipaddress). The user name used used to set up the Linux address will be the one you will use for the username. The IP address can be found out via ipconfig, and looking at the IPv4 address section: That will be used as the IP.
Using that we will access the server on Windows using PuTTY.
4. Simply download and install PuTTY, and once you installed it, input the server hostname or ip. leave it on port 22, and set the login as ssh Save your session as "first" and press open.
5. Now once you're able to enter the server, you will be able to control the system via linux CLI.
Implementing passwordless authentication
Now once you set up ssh, you can do something that is a step further to enhance security: Which is to enter the system without entering a password. This can be done by logging into the system, and once you get to your directory and creating a file under .ssh/ called “authorized_keys”
Then create a public key and private key via PuTTY gen. Follow the instructions to save the public and private key, and input the passcode for the private key.
Then you can upload the entire public key by opening the file, and copying the entire thing. Going to your terminal, and using cat [whole public key] >> .ssh/authorized_keys
Then set permissions on as follows chmod 700 on the .ssh folder and and chmod 640 .ssh/authorized_keys file.
Be advised that you may have to input the passcode each time you do this. But once completed you will not have to input your passcode once you connect with a private key.
A note about Public keys and private keys.
Private keys are supposed to be private. If you share the private keys with anyone else, they can actually use them to log in as you. And if you share the private key to anyone it's no longer secure. Now your public key, you can share that with anyone, because it identities you. It let the server know that is is YOU that is connecting. The public key is plain text so you can actually paste it into any message.